<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Js 基础测试</title>
</head>
<style>
    body,div,h1,h2,h3,h4,h5,h6,p,span{
        margin: 0 20% 0;
        padding: 0;
        font-size: 16px;
        font-family: fantasy;
    }
</style>
<body>
    <!-- 
        测试规则：
        一、测试内容上交答案命名规则：本页面（包含你的答案）+姓名.无姓名不予接受。
        二、测试内容可以查看手册，查看谷歌百度，但请说出解析详情，需要的不仅仅是一个答案。
        三、测试是评价自己对知识的掌握程度，请做好自我约束。禁止相互copy！！！
        四、涉及代码部分，请合理注释与说明。
        五、变量与方法合理命名。
     -->
     1、请说出JS的数据类型。
     <br>
     答:JS中的数据类型分为俩种，基础类型和引用类型。
     基础类型有:string、number、null、undefined、Boolean、symbol(ES6新增代码独一无二的值)
     引用类型有：object
     
<hr>
     2、for (var i = 0; i < 5; i++) {
        setTimeout(function() {
            console.log( i);
        }, 1000);
    }
    console.log( i);请说出i的值，为什么？
    <br>
    答:i的值为打印五个5，因为setTimeout属于异步任务，在js中异步任务中的代码需要等同步代码执行完毕才回执行，
    所以会循环五次都打印5
<hr>
    3、
        for (var i = 0; i < 5; i++) {
            (function(j) {  // j = i
                setTimeout(function() {
                    console.log( j);
                }, 1000);
            })(i);
        }
        console.log( i);求i的值。
    <br>
    答:i的值为0 1 2 3 4，这个匿名函数产生了闭包的效果，新建了一个作用域，这个作用域接收到每次循环的i值都保存下来，
    即使循环结束，闭包形成的作用域也不会销毁    
<hr>
    4、typeof和instance 的区别？
    <br>
    答:typeof只用于检测基础类型，typeof null array object的值都为object，type检查复杂对象时返回object
    instanceof用于判断一个变量是否属于某个构造函数的实例
<hr>
    5、完成如下效果：图片跟随鼠标移动。
    <img src=http://chuantu.xyz/t6/736/1590716330x1033347913.gif />
<hr>
    6、定义一个函数，从数组中随机抽取n个数。
<hr>
    7、map filter reduce的区别，代码说明。
<hr>
    8、延迟加载和异步加载的区别？
<hr>
    9、什么是 async/await 及其如何工作？
<hr>
    10、完成原生AJax的请求。使用如下接口，请求三条数据，并渲染到页面中、
    https://api.genderize.io/?name=peter&name=jim&name=tony 
<hr>
    11、根据图示完成如下案例。
    <img src=http://chuantu.xyz/t6/736/1590734843x1031866013.png />
   
</body>
</html>